
Delencia Lakat
|
Posted - 2009.07.06 13:16:00 -
[1]
Edited by: Delencia Lakat on 06/07/2009 13:23:53 Edited by: Delencia Lakat on 06/07/2009 13:22:53 This kind of technology has been around for a long time and I'll tell you how it works.
A company has the idea to implement it, so they do.
Someone posts it on a forum and people go nuts.
Then they get to the point where they realize that having a server do high-res real time rendering of games in such a quantity requires an absolutely insane setup, and the lag is nearly impossible.
And, VIDEOS ARE PRERENDERED. You can NEVER compare video streaming capability to that of rendering something and then displaying it to the user. You will never, ever, have good results. Imagine if your video card was connected through ethernet. That's what this is. Except that it's also your mouse and keyboard that are connected through the same connection. Oh and it's flooded at every moment with UDP traffic for displaying the 60 frames/second required to play the game. Thousands of packets even when you're not doing anything.
Imagine on your computer, your input is going in and the output is being shown to you. When you do something, you see an immediate change. The problem with these setups is that output is on its way before your input gets there (or vice-versa). You may click to fire and by the time it actually "draws" for you, the target has moved on the server. This is why so many mmorpgs are (for lack of a better word) deterministic. You can simply do some maths on one end and show the result to the client. It's completely "reversible" and can be predictably drawn *on the client*. (this is the issue with FPS games rendered on a server) This is why you see your ship "hitting" that interceptor when you're sure as hell not.
This isn't like taking a screenshot every second and then sending a single mouse event to the server (VNC and etc).
If you want to do this on your own, set up some kind of remote desktop system on your computer, then turn on your laptop (on your connection - or for more realism, another person's connection), and then try to play EVE through it. Then think about how it'd feel to do this with all games AND in a situation where the computer you're connected to will scale your display quality up/down depending on network latency.
These projects last until they try to scale them up.
Edit: yes, I know that "deterministic" in this case is not 100% correct, as almost MMOs do use random number generators, however, very little of that generation is left up to the user (as is in for example, an FPS, where the server has no idea where the user will shoot). This is why few MMOs really offer "aiming" in the traditional sense. My point being that when you try to make a system that handles that much data going in and out, it's a hell of a lot easier to say "the user is attacking X" instead of performing the math to find out if the user's shot (from the client) actually hits X.
And if you've ever played a fast-paced FPS like quake or UT, you'll know how horrible it is even with the smallest amounts of lag.
|